/*
 *  Copyright (C) 2011 felixtheripper <felixtheripper_AT_gmail.com>
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public License
 *  as published by the Free Software Foundation; either version 2
 *  of the License, or (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */

/**
 *
 * @author felixtheripper
 *
 * email: felixtheripper_AT_gmail.com
 * ... please remove "_AT_" from the above string to get the right email address
 *
 */

package org.myorg.ctm.etk.gui.swg.display.toolbar;


import org.myorg.shr.gui.swg.display.button.BtnIcnAbs;
import org.myorg.shr.gui.swg.display.button.BtnAbs;
import java.util.logging.Logger;
import javax.help.HelpBroker;
import javax.swing.Box;
import org.myorg.ctm.etk.gui.swg.display.button.*;
import org.myorg.shr.gui.swg.util.logging.FileHandlerShr;
import org.myorg.ctm.etk.gui.swg.util.property.PrpNamingEtk;


/**
 *
 * 
 */
abstract public class TbrPerspAbs extends TbrAbs
{
    // ----
    // begin: instantiate logger for this class
    final static private Logger _LOGGER_ = Logger.getLogger(TbrPerspAbs.class.getName());

    static
    {
        TbrPerspAbs._LOGGER_.addHandler(FileHandlerShr.s_getInstance());
    }

    // end: instantiate logger for this class
    // ----

    protected TbrPerspAbs(String strPrefix)
    {
        super(strPrefix +
                " - " +
                System.getProperty(PrpNamingEtk.STR_PRP_APPLI_TITLE) +
                " - " +
            TbrPerspAbs._STR_TITLE_SUFFIX);

        this._btnHelpContents = new BtnIcnHlpContents16();
        this._btnHelpOnlineHome = new BtnIcnHlpOnlineHome();
        
    }

    public void setEnabledHelpSourceAndTrack(HelpBroker hbr)
    {
        if (this._btnHelpContents != null)
            this._btnHelpContents.setEnabled(hbr);
    }

    @Override
    public boolean init()
    {
        if (! super.init())
            return false;
        
        if (! this._btnNew_.init())
        {
            TbrPerspAbs._LOGGER_.severe("! this._btnNew_.init(), forcing an exit");
            System.exit(1);
        }

        if (! this._btnDelete_.init())
        {
            TbrPerspAbs._LOGGER_.severe("! this._btnDelete_.init(), forcing an exit");
            System.exit(1);
        }
       
        if (! this._btnHelpOnlineHome.init())
        {
            TbrPerspAbs._LOGGER_.severe("! this._btnHelpOnlineHome.init(), forcing an exit");
            System.exit(1);
        }

        if (! this._btnHelpContents.init())
        {
            TbrPerspAbs._LOGGER_.severe("! this._btnHelpContents.init(), forcing an exit");
            System.exit(1);
        }

        super.add(this._btnNew_);
        super.add(this._btnDelete_);

        super.add(TbrAbs._s_createSeparator_());
        super.add(super._btnPrint_);

        super.add(Box.createHorizontalGlue());
    	super.add(Box.createVerticalGlue());
        super.add(this._btnHelpContents);
        super.add(this._btnHelpOnlineHome);

        return true;
    }

    @Override
    public void destroy()
    {
        super.destroy();
        
        // TODO !!!!
    }

    final static private String _STR_TITLE_SUFFIX = "main toolbar";
    private BtnIcnHlpContents _btnHelpContents = null;
    protected BtnIcnAbs _btnNew_ = null;
    protected BtnIcnAbs _btnDelete_ = null;
    private BtnAbs _btnHelpOnlineHome = null;

}
